home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / Miscellaneous Disk Images / Apple II Getting down to Basic / PROGRAM.bas < prev    next >
Encoding:
BASIC Source File  |  1988-02-17  |  12.7 KB  |  106 lines

  1. 0  ONERR  GOTO 1021
  2. 1  LET IN$ = "X":TT = 0:BT = 24:M = 0: GOSUB 311: GOSUB 421: HOME :F$ = "PROGRAM.TEXT": GOSUB 991: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: POKE 32,0: VTAB 18: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 18: SPEED= 10:SN = 3: GOSUB 541: SPEED= 255:M = 3: VTAB 20: HTAB 18: PRINT "(You press RETURN)";: GOSUB 261: VTAB 20: HTAB 5: CALL  -868:SN = 2: GOSUB 541:TT = 0:BT = 15: VTAB BT:M = 0
  3. 11  GOSUB 351: GOSUB 261:TT = 15:BT = 24: GOSUB 411:TT = 0: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: POKE 32,0: VTAB 14: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 14: SPEED= 10:SN = 1: GOSUB 541: SPEED= 255:M = 3: VTAB 16: HTAB 18: PRINT "(You press RETURN)";: GOSUB 261: VTAB 16: HTAB 5: CALL  -868:TT = 0:BT = 12: VTAB BT:M = 0: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261
  4. 21  POKE 32,0: VTAB 16: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 16: SPEED= 10: GOSUB 651: SPEED= 255:M = 3: VTAB 18: HTAB 18: PRINT "(You press RETURN)";: GOSUB 261: VTAB 18: HTAB 5: CALL  -868:SN = 2: GOSUB 541:TT = 0:BT = 12: VTAB BT:M = 0: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261:TT = 15:BT = 24: GOSUB 411:TT = 0:BT = 12: GOSUB 351: GOSUB 261
  5. 31  POKE 32,0: VTAB 15: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 15: SPEED= 10:SN = 1: GOSUB 581: SPEED= 255:M = 0: GOSUB 261: VTAB L: GOSUB 351:ET = 1:TT(1) = 15:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 18: GOSUB 931: VTAB 20:SN = 2: GOSUB 541: GOSUB 581:TT = 0:BT = 12: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261:TT = 16:BT = 24: GOSUB 411
  6. 41  POKE 32,0: VTAB 16: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 16: SPEED= 10:SN = 1: GOSUB 611: SPEED= 255: VTAB 18: HTAB 18: PRINT "(You press RETURN)";: GOSUB 261: VTAB 18: HTAB 5: CALL  -868:TT = 0:BT = 12: GOSUB 351: GOSUB 261: GOSUB 351:ET = 1:TT(1) = 18:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 19: GOSUB 931
  7. 51  VTAB 21:SN = 2: GOSUB 541: GOSUB 611: GOSUB 581:TT = 0:BT = 12: GOSUB 351: GOSUB 261: GOSUB 351:TT = 12:BT = 24: GOSUB 411: GOSUB 421:SN = 1: VTAB 14: HTAB 2: GOSUB 541: HTAB 2: GOSUB 611: HTAB 2: GOSUB 581:ET = 1
  8. 61 TT = 17:BT = 24: GOSUB 411: GOSUB 421: VTAB 18: GOSUB 461:W = 38:B = 10:T = 3:L = 1:X = 1: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "Please add a PRINT statement": PRINT "to the program at LINE 40.": GOTO 61
  9. 71 SL = 2:BS = X: GOSUB 711: IF LN$ < >"40"  THEN  GOSUB 431: PRINT "You should start by typing": PRINT "40, then type a PRINT statement.": PRINT "Please try again.": GOTO 61
  10. 81 X = X +2: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You should follow the line": PRINT "number with a PRINT statement.": GOTO 61
  11. 91  GOSUB 721: ON E = 1 GOTO 61: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "Please follow PRINT with a": PRINT "literal quote inside quotations.": PRINT "Try again.": GOTO 61
  12. 101 PN = 1: GOSUB 751: ON E = 1 GOTO 61: GOSUB 771: ON E = 1 GOTO 61: GOSUB 811: ON E = 1 GOTO 61
  13. 111 TT = 0:BT = 12: GOSUB 411: GOSUB 351: VTAB 5: HTAB 13: PRINT NAME$".";: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: POKE 32,0: VTAB 21: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 21: SPEED= 10: GOSUB 641: SPEED= 255:M = 3: VTAB 23: HTAB 23: PRINT "(You press RETURN)";: GOSUB 261: VTAB 23: HTAB 5: CALL  -868:TT = 0:BT = 12: VTAB BT:M = 0: GOSUB 351:ET = 1
  14. 121 TT(1) = 22:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 23: GOSUB 931:TT = 11:BT = 24: GOSUB 421: VTAB 24:SN = 2: PRINT : GOSUB 541: GOSUB 611: GOSUB 581: PRINT I$(1): PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: POKE 32,0: VTAB 21: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 15:BT = 24: GOSUB 421: VTAB 21: SPEED= 10: GOSUB 661: SPEED= 255:M = 3
  15. 131  VTAB 23: HTAB 23: PRINT "(You press RETURN)";: GOSUB 261: VTAB 23: HTAB 5: CALL  -868:TT = 11:BT = 24: GOSUB 421: VTAB 22:SN = 1: PRINT : HTAB 2: GOSUB 541: HTAB 2: GOSUB 611: HTAB 2: GOSUB 581: PRINT " 40 PRINT "; CHR$(34);I$(1); CHR$(34): HTAB 2: GOSUB 641: PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261: GOSUB 351:ET = 1
  16. 141 TT = 20:BT = 24: GOSUB 411: GOSUB 421: VTAB 21: GOSUB 461:W = 38:B = 10:T = 3:L = 1:X = 1: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "Please change line 40 by typing": PRINT "40 and following it with a": PRINT "PRINT statement.": GOTO 141
  17. 151 SL = 2:BS = X: GOSUB 711: IF LN$ < >"40"  THEN  GOSUB 431: PRINT "You are trying to replace": PRINT "line 40 by typing 40 and a": PRINT "PRINT statement.  Try again.": GOTO 141
  18. 161 X = X +2: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You should follow the line": PRINT "number with a PRINT statement.": GOTO 141
  19. 171  GOSUB 721: ON E = 1 GOTO 141: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You should type a new literal": PRINT "quote to replace the old one.": PRINT "Please try again.": GOTO 141
  20. 181 PN = 2: GOSUB 751: ON E = 1 GOTO 141: GOSUB 771: ON E = 1 GOTO 141: GOSUB 811: ON E = 1 GOTO 141
  21. 191 TT = 12:BT = 24: GOSUB 421: VTAB 24: PRINT : PRINT :TT = 0:BT = 12: GOSUB 351:ET = 1:TT(1) = 20:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 21: GOSUB 961:TT = 11:BT = 24: GOSUB 421: VTAB 22:SN = 1: PRINT : HTAB 2: GOSUB 541: HTAB 2: GOSUB 611: HTAB 2: GOSUB 581: PRINT " 40 PRINT "; CHR$(34);I$(2); CHR$(34): HTAB 2: GOSUB 641: PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 411: GOSUB 351: GOSUB 261: GOSUB 351
  22. 201 ET = 1:TT(1) = 20:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 21: GOSUB 931:TT = 11:BT = 24: GOSUB 421: VTAB 22:SN = 2: PRINT : GOSUB 541: GOSUB 611: GOSUB 581: PRINT I$(2): PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: GOSUB 411: GOSUB 351: GOSUB 261: GOSUB 351:ET = 1
  23. 211 TT = 20:BT = 24: GOSUB 411: GOSUB 421: VTAB 21: GOSUB 461:W = 38:B = 10:T = 3:L = 1:X = 1:TT = 0:BT = 12: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "Please delete line 30 by typing": PRINT "30 and pressing RETURN.": GOTO 211
  24. 221 SL = 2:BS = X: GOSUB 711: IF LN$ < >"30"  THEN  GOSUB 431: PRINT "You are trying to delete": PRINT "line 30 by typing 30 and": PRINT "pressing RETURN.  Try again.": GOTO 211
  25. 231 LD = 1:X = X +1: GOSUB 881: ON E = 1 GOTO 211
  26. 241 TT = 12:BT = 24: GOSUB 421: VTAB 24: PRINT : PRINT :TT = 0:BT = 12: VTAB BT: GOSUB 351:ET = 1:TT(1) = 20:BT(1) = 24:W(1) = 38:B(1) = 9:T(1) = 3:L(1) = 1:IV = 21: GOSUB 961:TT = 12:BT = 24: GOSUB 421: VTAB 22:SN = 1: PRINT : HTAB 2: GOSUB 541: HTAB 2: GOSUB 611: PRINT " 40 PRINT "; CHR$(34);I$(2); CHR$(34): HTAB 2: GOSUB 641: PRINT : PRINT : PRINT : PRINT :TT = 0:BT = 12: VTAB BT: GOSUB 351: GOSUB 261: GOSUB 351: GOSUB 261
  27. 251  POKE 32,0: VTAB 21: HTAB 1: PRINT  CHR$(93);: POKE 32,L:TT = 20:BT = 24: GOSUB 421: VTAB 21: SPEED= 10:SN = 1: GOSUB 581: SPEED= 255: GOSUB 321:TT = 0:BT = 12
  28. 255  VTAB BT: GOSUB 351: GOSUB 261: GOSUB 351: POKE 931,1: GOSUB 261:TT = 0:BT = 24: GOSUB 411: GOSUB 1001: PRINT : PRINT  CHR$(4);"RUN RUNSAVER": END 
  29. 261  POKE  -16368,0
  30. 271 P =  PEEK( -16384):TE = TE +1: ON P = 155 GOTO 1011: ON P < >13 GOTO 281: IF TE <225  THEN 271
  31. 281  IF P = 141  THEN TE = 0: CALL  -998: RETURN 
  32. 291 M$ = "Press RETURN": GOSUB 301: FOR Z = 1 TO 700: NEXT Z:M$ = "_____________": GOSUB 301: FOR Z = 1 TO 700: NEXT Z: GOTO 271
  33. 301  VTAB B: HTAB M +(((W -L) - LEN(M$))/2): PRINT M$;: RETURN 
  34. 311  PRINT  CHR$(4);"OPEN CALLNAME": PRINT  CHR$(4);"READ CALLNAME": INPUT NA$: PRINT  CHR$(4);"CLOSE CALLNAME": RETURN 
  35. 321  PRINT : PRINT  CHR$(4);"OPEN CAT.NAME": PRINT  CHR$(4);"CLOSE CAT.NAME": PRINT  CHR$(4);"DELETE CAT.NAME": PRINT  CHR$(4);"OPEN CAT.NAME": PRINT  CHR$(4);"WRITE CAT.NAME": PRINT I$(2);"@": PRINT  CHR$(4);"CLOSE CAT.NAME": RETURN 
  36. 331  POKE 34,T -2: POKE 35,B: POKE 32,L: POKE 33,W +1: HOME : FOR BD = 2 TO W -1: VTAB T -1: HTAB BD: PRINT "_";: VTAB B: HTAB BD: PRINT "_";: NEXT BD: FOR BD = T TO B: VTAB BD: HTAB 1: PRINT "|";: HTAB W: PRINT "|";: NEXT BD
  37. 341  POKE 34,T: POKE 35,B -1: POKE 32,L +2: POKE 33,W -4: HOME : RETURN 
  38. 351  PRINT  CHR$(4);"READ ";F$:S$ = "":A$ = "":NL = 1: INPUT S$: IF S$ = "%"  THEN  GOSUB 411: INPUT T,B,L,W: GOSUB 331: GOTO 381
  39. 361  IF S$ = "&"  THEN  GOSUB 341
  40. 371  FOR H = T +1 TO B -1: VTAB H: HTAB 1: CALL  -868: NEXT H
  41. 381  CALL 813:IN$ =  MID$ (IN$,1): IF IN$ = "^"  THEN 401
  42. 391  VTAB T +NL: HTAB 1:NL = NL +1: PRINT IN$;: GOTO 381
  43. 401  RETURN 
  44. 411  POKE 32,0: POKE 33,40: POKE 34,TT: POKE 35,BT: HOME : RETURN 
  45. 421  POKE 32,0: POKE 33,40: POKE 34,TT: POKE 35,BT: RETURN 
  46. 431 TT = 0:BT = 10: GOSUB 421: IF ET = 1  THEN ET = ET +1: GOSUB 331: GOTO 451
  47. 441  GOSUB 341
  48. 451  HTAB L: VTAB T +1: FOR H = T +1 TO B -1: VTAB H: HTAB 1: CALL  -868: NEXT H: VTAB T +1: RETURN 
  49. 461  PRINT  CHR$(4): POKE  -16368,0:AN$ = "": ON CP = 1 GOTO 481
  50. 471  HTAB 1: PRINT  CHR$(93);
  51. 481 R = 0: CALL 768: FOR J = 512 TO 736:X =  PEEK(J): ON X = 155 GOTO 1011: IF X = 141  THEN J = 736: GOTO 531
  52. 491  IF X = 162  THEN R = 1
  53. 501  IF R = 1  THEN 521
  54. 511 AN$ = AN$ + CHR$(X -128 -32 *(X >223)): GOTO 531
  55. 521 AN$ = AN$ + CHR$(X -128)
  56. 531  NEXT J:BU$ = AN$: RETURN 
  57. 541  IF SN = 3  THEN  HTAB 2: PRINT "PRINT "; CHR$(34);"ROSES ARE RED"; CHR$(34)
  58. 551  IF SN = 1  THEN  PRINT "10 PRINT "; CHR$(34);"ROSES ARE RED"; CHR$(34)
  59. 561  IF SN = 2  THEN  HTAB 1: PRINT "ROSES ARE RED"
  60. 571  RETURN 
  61. 581  IF SN = 1  THEN  PRINT "30 PRINT "; CHR$(34);"I LOVE MY APPLE"; CHR$(34)
  62. 591  IF SN = 2  THEN  PRINT "I LOVE MY APPLE"
  63. 601  RETURN 
  64. 611  IF SN = 1  THEN  PRINT "20 PRINT "; CHR$(34);"VIOLETS ARE BLUE"; CHR$(34)
  65. 621  IF SN = 2  THEN  PRINT "VIOLETS ARE BLUE"
  66. 631  RETURN 
  67. 641  PRINT "50 END": RETURN 
  68. 651  HTAB 2: PRINT "RUN": RETURN 
  69. 661  HTAB 2: PRINT "LIST": RETURN 
  70. 671 E = 0
  71. 681  IF X > =  LEN(AN$)  THEN E = 1: RETURN 
  72. 691  ON  MID$ (AN$,X,1) < >" " GOTO 711
  73. 701 X = X +1: GOTO 681
  74. 711 LN$ =  MID$ (AN$,X,SL): RETURN 
  75. 721 E = 0: IF  MID$ (AN$,X,1) = "?"  THEN X = X +1: RETURN 
  76. 731 E = 0: IF  MID$ (AN$,X,5) = "PRINT"  THEN X = X +5: RETURN 
  77. 741 E = 1: GOSUB 431: PRINT "You typed "; MID$ (AN$,BS);".": PRINT "You didn't use PRINT.": PRINT "Please try again.": RETURN 
  78. 751 E = 0: IF  MID$ (AN$,X,1) =  CHR$(34)  THEN  RETURN 
  79. 761 E = 1: GOSUB 431: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You forgot to use a quotation": PRINT "mark (" CHR$(34)") after the PRINT": PRINT "statement.  Please try again.": RETURN 
  80. 771 E = 0:SL = X +1
  81. 781  ON SL > LEN(AN$) GOTO 801: IF  MID$ (AN$,SL,1) < > CHR$(34)  THEN SL = SL +1: GOTO 781
  82. 791  IF  MID$ (AN$,SL,1) =  CHR$(34)  THEN  RETURN 
  83. 801 E = 1: GOSUB 431: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "Although it's not required, we'd": PRINT "like you to end your statement": PRINT "with a second "; CHR$(34);" mark. Try again.": RETURN 
  84. 811 E = 0: IF SL > = X +2  THEN 831
  85. 821 E = 1: GOSUB 431: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "It would help for now if you": PRINT "would enclose something inside": PRINT "the quotations.  Try again.": RETURN 
  86. 831 SL = SL -(X +1):I$(PN) =  MID$ (AN$,X +1,SL): RETURN 
  87. 841 E = 0: IF  MID$ (AN$,X,3) = "RUN"  THEN X = X +2: RETURN 
  88. 851 E = 1: GOSUB 431: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You should have typed RUN.": PRINT "Please try again.": RETURN 
  89. 861 E = 0: IF  MID$ (AN$,X,4) = "LIST"  THEN X = X +3: RETURN 
  90. 871 E = 1: GOSUB 431: PRINT "You typed "; MID$ (BU$,BS);".": PRINT "You should have typed LIST.": PRINT "Please try again.": RETURN 
  91. 881 E = 0: IF X > =  LEN(AN$)  THEN 921
  92. 891  FOR Y = X +1 TO  LEN(AN$): IF  MID$ (AN$,Y,1) < >" "  THEN E = 1
  93. 901  NEXT Y: IF LD = 1  AND E = 1  THEN  GOSUB 431: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "You shouldn't type anything after": PRINT "the line number if you wish to": PRINT "to delete a line.  Try again.": RETURN 
  94. 911  IF E = 1  THEN  GOSUB 431: PRINT "You typed "; MID$ (BU$,BS)".": PRINT "Please don't type anything after": PRINT "the command.  It will just": PRINT "complicate things.  Try again.": RETURN 
  95. 921  RETURN 
  96. 931 TT = TT(1):BT = BT(1):W = W(1):B = B(1):T = T(1):L = L(1): GOSUB 411: GOSUB 421: VTAB IV: GOSUB 461:X = 1: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "Please type RUN and": PRINT "press RETURN.  Try again.": GOTO 931
  97. 941 BS = X: GOSUB 841: ON E = 1 GOTO 931: GOSUB 881: ON E = 1 GOTO 931
  98. 951  RETURN 
  99. 961 TT = TT(1):BT = BT(1):W = W(1):B = B(1):T = T(1):L = L(1): GOSUB 411: GOSUB 421: VTAB IV: GOSUB 461:X = 1: GOSUB 671: IF E = 1  THEN  GOSUB 431: PRINT "Please type LIST and": PRINT "press RETURN.  Try again.": GOTO 961
  100. 971 BS = X: GOSUB 861: ON E = 1 GOTO 961: GOSUB 881: ON E = 1 GOTO 961
  101. 981  RETURN 
  102. 991  PRINT : PRINT  CHR$(4);"OPEN ";F$: RETURN 
  103. 1001  PRINT : PRINT  CHR$(4);"CLOSE ";F$: RETURN 
  104. 1011  POKE 32,0: POKE 33,40: POKE 34,0: POKE 35,24: IF I$(2) = ""  THEN I$(2) = "AND PROGRAMMING, TOO!"
  105. 1015  GOSUB 321: GOSUB 1001: PRINT : PRINT  CHR$(4);"RUN MENU"
  106. 1021  RESUME